From f178e04d8b194955b4961d61d4bd9f2b5ce5c180 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=98yvind=20Kol=C3=A5s?= Date: Sun, 11 Sep 2005 22:45:46 +0000 Subject: [PATCH] adding (unused) loss field to BablFormat, simplification of statistical calculations done in tests --- ChangeLog | 9 ++++ babl/babl-classes.h | 2 + babl/babl-format.c | 2 + tests/conversions.c | 6 +-- tests/formats.c | 118 ++++++++++---------------------------------- 5 files changed, 39 insertions(+), 98 deletions(-) diff --git a/ChangeLog b/ChangeLog index 10e5853..1fd7368 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2005-09-12 Øyvind Kolås + + * babl/babl-classes.h: add loss field to format class. + * babl/babl-format.c: (format_new): set loss field to -1 as initial + value. + * tests/conversions.c: (reference_format): simplify + * tests/formats.c: (test_init), (format_check), (main): code + simplification. + 2005-09-11 Øyvind Kolås * babl/babl.h: use gcc 4.x attribute for NULL sentinel. diff --git a/babl/babl-classes.h b/babl/babl-classes.h index 7bdd4f9..d6adbb9 100644 --- a/babl/babl-classes.h +++ b/babl/babl-classes.h @@ -184,6 +184,8 @@ typedef struct BablModel *model; int bytes_per_pixel; int planar; + double loss; /*< average relative error when converting + from and to RGBA double */ } BablFormat; typedef struct diff --git a/babl/babl-format.c b/babl/babl-format.c index f461639..734932d 100644 --- a/babl/babl-format.c +++ b/babl/babl-format.c @@ -100,6 +100,8 @@ format_new (const char *name, babl->format.bytes_per_pixel += type[i]->bits/8; } + babl->format.loss = -1.0; + return babl; } diff --git a/tests/conversions.c b/tests/conversions.c index 6c1ba8d..c2abf1b 100644 --- a/tests/conversions.c +++ b/tests/conversions.c @@ -51,10 +51,7 @@ void test_init (void) static Babl *reference_format (void) { - static Babl *self = NULL; - - if (!self) - self = babl_format_new ( + return babl_format_new ( babl_model ("RGBA"), babl_type ("double"), babl_component ("R"), @@ -62,7 +59,6 @@ static Babl *reference_format (void) babl_component ("B"), babl_component ("A"), NULL); - return self; } static void diff --git a/tests/formats.c b/tests/formats.c index b5f3146..721ccc5 100644 --- a/tests/formats.c +++ b/tests/formats.c @@ -5,63 +5,17 @@ #include #include "babl-internal.h" -int OK=1; +#define pixels 1024 -#define pixels 1024 -#define TOLERANCE 0.001 +static double test[pixels * 4]; -double test[pixels * 4]; - -double r_interval (double min, double max) +static void +test_init (void) { - long int rand_i = random (); - double ret; - ret = (double) rand_i / RAND_MAX; - ret*=(max-min); - ret+=min; - return ret; -} + int i; -void test_init (void) -{ - double r_min = 0.0, - r_max = 1.0, - g_min = 0.0, - g_max = 1.0, - b_min = 0.0, - b_max = 1.0, - a_min = 0.0, - a_max = 1.0; - int i; - double r,g,b,a; - for (i=0;iTOLERANCE) - { - if (!log) - log=1; - OK=0; - } - } - if (log && log < 5) - { - babl_log ("%s", babl->instance.name); - babl_log ("\ttest: %2.3f %2.3f %2.3f %2.3f", test [i*4+0], - test [i*4+1], - test [i*4+2], - test [i*4+3]); - babl_log ("\tclipped: %2.3f %2.3f %2.3f %2.3f", clipped [i*4+0], - clipped [i*4+1], - clipped [i*4+2], - clipped [i*4+3]); - babl_log ("\ttrnsfrmd: %2.3f %2.3f %2.3f %2.3f", transformed [i*4+0], - transformed [i*4+1], - transformed [i*4+2], - transformed [i*4+3]); - log++; - OK=0; - } + loss += fabs (clipped[i] - test[i]); } loss /= pixels; - { - babl_log ("%s\tloss:%f%%", babl->instance.name, loss * 100.0); - OK = 0; - } + + if (userdata) + babl_log ("%s\tloss: %f", babl->instance.name, loss); + babl->format.loss = loss; } babl_free (original); @@ -150,9 +82,9 @@ int main (void) test_init (); babl_set_extender (babl_extension_quiet_log ()); - babl_format_each (format_check, NULL); + babl_format_each (format_check, (void*)1); babl_destroy (); - return !OK; + return 0; } -- 2.30.2